package modelo.proyectil;

import java.util.Enumeration;
import java.util.Hashtable;

import vista.proyectil.VistaBalaCanion;
import vista.proyectil.VistaCohete;
import ar.uba.fi.algo3.titiritero.ControladorJuego;
import modelo.Contenedor;
import modelo.Posicion;
import modelo.Vector;
import modelo.tanque.Tanque;

public class Cohete extends Proyectil{
	public Cohete(Posicion p, Vector dir){
		super(p, dir);
	}

	public float getDanio(Tanque t) {
		float danio = (t.getResistencia()/2);
		return danio;
	}

	@Override
	public void agregarseAListas() {
		ControladorJuego unControlador = Contenedor.getInstance().getControlador();
		VistaCohete vistaC = new VistaCohete();
	    vistaC.setPosicionable(this);
	    unControlador.agregarDibujable(vistaC);
	    unControlador.agregarObjetoVivo(this);
	    Contenedor.getInstance().agegarColisionable(this);
		
	}
	
	protected String getNombreClase() {
		return "Cohete";
	}
	
	public static void leer(Enumeration e, Hashtable h) {
		String key;
		String val;
		Cohete unProyectil = new Cohete(new Posicion(0, 0), new Vector(0, 0));
		while (e.hasMoreElements()) {
			key = (String) e.nextElement();
			val = (String) h.get(key);
			if (key.equalsIgnoreCase("PosX")) {
				int posY = unProyectil.getPosicion().getY();
				unProyectil.setPosicion(new Posicion(Integer.parseInt(val), posY));
			} else if (key.equalsIgnoreCase("PosY")) {
				int posX = unProyectil.getPosicion().getX();
				unProyectil.setPosicion(new Posicion(posX, Integer.parseInt(val)));
			} else if (key.equalsIgnoreCase("DireccionX")) {
				int dirY = unProyectil.getDireccion().getY();
				unProyectil.setDireccion(new Vector(Integer.parseInt(val), dirY));
			} else if (key.equalsIgnoreCase("DireccionY")) {
				int dirX = unProyectil.getDireccion().getX();
				unProyectil.setDireccion(new Vector(dirX, Integer.parseInt(val)));
			}
		}
		Contenedor.getInstance().agegarColisionable(unProyectil);
		VistaCohete vistaCohete = new VistaCohete();
		vistaCohete.setPosicionable(unProyectil);
		ControladorJuego unControlador = Contenedor.getInstance().getControlador();
		unControlador.agregarDibujable(vistaCohete);
		unControlador.agregarObjetoVivo(unProyectil);
	}
}
